package com.uzai.console.enums;

import org.apache.commons.lang3.StringUtils;

/**
 * 操作日志模块枚举
 * @Auther: liuqi
 * @Date: 2021/8/19 11:22
 * @Description:
 */
public enum SystemModelEnum {

    //功能设置
    Product("Product", "功能设置"),

    //个人微信
    DeviceWechatConfigPlan("DeviceWechatConfigPlan", "个人微信配置方案"),
    DeviceWechatSysPlugin("DeviceWechatSysPlugin", "个人微信系统插件"),
    DeviceWechatInfo("DeviceWechatInfo", "个人微信机器人"),
    DeviceWechatFriendRequest("DeviceWechatFriendRequest", "个人微信好友请求"),
    DeviceWechatWxContacts("DeviceWechatWxContacts", "个人微信通讯录"),
    DeviceWechatWxGroup("DeviceWechatWxGroup", "个人微信群"),

    //企业微信
    DeviceWxworkInfo("DeviceWxworkInfo", "企业微信机器人"),
    DeviceWxworkConfigPlan("DeviceWxworkConfigPlan", "企业微信配置方案"),
    DeviceWxworkFriendRequest("DeviceWxworkFriendRequest", "企业微信好友请求"),
    DeviceWxWorkContacts("DeviceWxworkContacts", "企业微信通讯录"),
    DeviceWxWorkOpenapiInfo("DeviceWxWorkOpenapiInfo", "企业微信授权渠道"),
    DeviceWxWorkChannelQrcode("DeviceWxWorkChannelQrcode", "企业微信推广员"),

    //企业微信微信群
    WxqWorkManagePlan("WxqWorkManagePlan", "企业微信群管理方案"),
    WxqWorkBlacklistBase("WxqWorkBlacklistBase", "企业微信社群黑名单基础设置"),
    WxqWorkBlacklistPrv("WxqWorkBlacklistPrv", "企业微信社群私有黑名单"),
    WxqWorkBlacklistPub("WxqWorkBlacklistPub", "企业微信社群共享全网黑名单"),
    WxWorkGroupMember("WxWorkGroupMember", "企业微信微信群成员"),
    WxWorkGroupInfo("WxWorkGroupInfo", "企业微信微信群"),

    //个人微信微信群
    WxqContactRefresh("WxqContactRefresh","微信群通讯录刷新"),
    WxqManagePlan("WxqManagePlan", "微信群管理方案"),
    WxqSuperAdmin("WxqSuperAdmin", "微信群超级管理员"),
    WxqBlacklistBase("WxqBlacklistBase", "社群黑名单基础设置"),
    WxqBlacklistPrv("WxqBlacklistPrv", "社群私有黑名单"),
    WxqBlacklistPub("WxqBlacklistPub", "社群共享全网黑名单"),
    WxqKickWhitelist("WxqKickWhitelist","社群踢人白名单"),
    WxGroupMember("WxGroupMember", "微信群成员"),
    ZombieFanTask("ZombieFanTask", "清理僵尸粉任务"),
    ZombieFan("ZombieFan", "僵尸粉明细"),

    //公众号
    DeviceWxpubConfigPlan("DeviceWxpubConfigPlan", "公众号配置方案"),
    DeviceWxpubInfo("DeviceWxpubInfo", "微信公众号"),
    WxpubActiveCode("WxpubActiveCode","公众号活码管理"),
    WxpubActiveCodeDetai("WxpubActiveCodeDetai","公众号活码管理明细"),

    //抖音设备
    DeviceTiktokInfo("DeviceTiktokInfo", "抖音设备机器人"),
    DeviceTiktokConfigPlan("DeviceTiktokConfigPlan", "抖音设备配置方案"),
    DeviceTiktokSysPlugin("DeviceWechatSysPlugin", "抖音设备系统插件"),
    TiktokConversation("TiktokConversation", "抖音群"),

    //小程序代码管理
    MiniCode("MiniCode", "小程序代码管理"),

    //私域设置
    Merchant("Merchant", "私域设置"),

    //淘宝订单
    TbOrder("TbOrder", "淘宝订单"),
    TbToken("TbToken", "淘宝联盟"),
    TbTokenNew("TbTokenNew", "新淘宝联盟"),
    TbTokenApi("TbTokenApi", "拉取订单淘宝联盟"),
    TbPunishOrder("TbPunishOrder", "淘宝处罚订单"),
    TbStoreBlacklist("TbStoreBlacklist", "淘宝店铺黑名单"),
    StoreBlacklistPrv("StoreBlacklistPrv", "淘宝店铺私有黑名单"),
    TbStoreBlacklistPub("TbStoreBlacklistPub", "淘宝店铺全网黑名单"),
    TbExclusiveGoods("TbExclusiveGoods", "淘宝定向商品"),
    TbExclusivePlan("TbExclusivePlan", "淘宝定向计划"),

    //唯品会
    VphOrder("VphOrder", "唯品会订单"),
    VphToken("VphToken", "唯品会联盟"),

    //京东订单
    JdOrder("JdOrder", "京东订单"),
    JdToken("JdToken", "京东联盟"),
    JdTokenApi("JdTokenApi", "拉取订单京东联盟"),

    //拼多多
    PddOrder("PddOrder", "拼多多订单"),
    PddToken("PddToken", "拼多多联盟"),

    //抖音
    DyToken("DyToken", "抖音联盟"),
    DyOrder("DyOrder", "抖音订单"),

    //快手
    KsToken("KsToken", "快手联盟"),
    KsOrder("KsOrder", "快手订单"),
    //本地生活
    ElmToken("ElmToken", "饿了么联盟"),
    EmlOrder("EmlOrder", "饿了么订单"),
    MtOrder("MtOrder", "美团订单"),
    TlbToken("TlbToken", "推老板账号"),
    LocalliveMeituanActivity("LocalliveMeituanActivity", "本地生活美团活动"),
    //订单拉取
    OrderPull("OrderPull", "订单拉取"),

    //cms
    CmsHomePage("CmsHomePage", "CMS首页设置"),
    CmsPersonalCenter("CmsPersonalCenter", "CMS个人中心"),
    CmsTbGoods("CmsTbGoods", "CMS淘宝商品"),
    CmsCustomLink("CmsCustomLink", "CMS自定义链接"),
    CmsBase("CmsBase", "CMS基础设置"),
    CmsActivity("CmsActivity", "CMS营销活动"),

    //小程序
    MiniGoods("MiniGoods", "小程序团购商品"),
    MiniOrder("MiniOrder", "小程序团购订单"),
    MiniOrderService("MiniOrderService","小程序团购售后"),
    MiniAddress("MiniAddress","小程序地址管理"),
    MiniPageConfig("MiniPageConfig", "小程序页面设置"),

    //朋友圈
    PyqMaterial("PyqMaterial", "朋友圈素材"),
    PyqCommentTemplate("PyqCommentTemplate", "朋友圈评论模板"),
    PyqContentTemplate("PyqContentTemplate", "朋友圈内容模板"),
    PyqDevicePlan("PyqDevicePlan", "朋友圈设备方案"),
    PyqJob("PyqJob", "朋友圈发送任务"),
    PyqAutoConfig("PyqAutoConfig", "朋友圈自动发圈配置"),
    PyqFollowConfig("PyqFollowConfig", "朋友圈自动跟发配置"),

    //发单
    FdTemplate("FdTemplate", "发单模板"),
    FdDevicePlan("FdDevicePlan", "发单设备方案"),
    FdSendJob("FdSendJob", "发单发送任务"),
    FdFollowConfig("FdFollowConfig", "发单自动跟发配置"),
    FdFollowConfigQf("FdFollowConfigQf", "气氛组自动跟发配置"),
    FdFollowGroup("FdFollowGroup", "发单采集群"),
    FdFollowGroupConfig("FdFollowGroupConfig", "发单采集群配置任务"),
    FdAutoConfig("FdAutoConfig", "自动发单配置"),

    //分佣管理
    LadderRatio("LadderRatio", "阶梯规则"),
    NormalRewardRule("NormalRewardRule", "分佣规则"),
    NuserRewardRule("NuserRewardRule", "杀熟规则"),
    PriRewardRule("PriRewardRule", "定向规则"),
    RegRewardRule("RegRewardRule", "奖励方案"),

    //群发任务
    GroupSendJob("GroupSendJob", "群发任务"),
    WxqAddFriendTask("WxqAddFriendTask", "微信群添加好友任务"),
    WxqAddFriendTaskAddInfo("WxqAddFriendTaskAddInfo", "微信群添加好友任务添加明细"),
    SopTask("SopTask","SOP任务"),
    SopTaskAddInfo("SopTaskAddInfo","SOP任务明细"),
    WxqAddFriendConfig("WxqAddFriendConfig", "加进群好友配置"),
    PreserveUser("PreserveUser", "待维护会员"),
    ZombieFanPassive("ZombieFanPassive","被动僵尸粉"),
    ZombieFanPassiveTask("ZombieFanPassiveTask","被动僵尸粉添加任务"),
    AddFanChannel("AddFanChannel","进粉渠道"),

    //用户管理
    WechatUser("WechatUser", "个人微信用户"),
    AppUser("AppUser", "个人App用户"),
    WxworkUser("WxworkUser", "企业微信用户"),
    MiniUser("MiniUser", "小程序用户"),
    WxpubUser("WxpubUser", "公众号用户管理"),
    UserType("UserType", "会员类型"),
    MarketingTag("MarketingTag", "会员标签"),
    MarketingTagRepay("MarketingTagRepay", "会员标签营销奖励回复语"),
    WechatBlacklistBase("WechatBlacklistBase", "用户黑名单基础设置"),
    WechatBlacklistPrv("WechatBlacklistPrv", "用户私有黑名单"),
    WechatBlacklistPub("WechatBlacklistPub", "用户全网黑名单"),


    //提现管理
    UserTakeBal("UserTakeBal", "提现列表"),
    RedPacket("RedPacket", "红包列表"),
    TakeBalBlacklist("TakeBalBlacklist", "提现黑名单"),

    //个人支付宝授权
    AlipayMchAuth("AlipayMchAuth", "个人支付宝授权"),

    //报表
    FansValueReport("FansValueReport", "粉丝价值报表"),
    OrderRevenueReport("OrderRevenueReport", "订单收益报表"),
    ExpenseCountReport("ExpenseCountReport", "支出统计报表"),
    RobotDataReport("RobotDataReport", "机器人数据报表"),

    //智能回复
    FaqReplyPrivate("FaqReplyPrivate", "个微企微词库"),

    //云监控
    AlarmDevice("AlarmDevice", "设备监控"),
    AlarmRule("AlarmRule", "报警规则"),
    AlarmEvent("AlarmEvent", "事件监控"),
    AlarmRisk("AlarmRisk", "风险监控"),
    AlarmRiskUser("AlarmRiskUser", "风险用户"),
    AlarmContacter("AlarmContacter", "报警联系人"),
    DingWarningGroup("DingWarningGroup", "钉钉报警群"),

    //客服管理
    KefuTalk("KefuTalk", "快捷短语"),
    KefuUser("KefuUser", "客服账号"),
    SysRole("SysRole", "角色管理"),
    UzaichatBaseConfig("UzaichatBaseConfig", "悠聊设置"),

    //素材管理
    SysMaterial("SysMaterial", "系统素材"),

    //域名管理
    SysDomain("SysDomain", "域名管理"),

    //短链接设置
    ShortLink("ShortLink", "短链接设置"),

    //系统设置
    SystemSet("SystemSet", "系统设置"),

    //文件导出
    ExportInfo("ExportInfo", "文件导出"),

    SensitiveWord("SensitiveWord","敏感词设置"),


    //数据处理
    OrderDelete("OrderDelete", "数据处理-订单删除"),
    WithdrawRecordClean("WithdrawRecordClean", "数据处理-提现记录清理"),
    UserBalanceHander("UserBalanceHander", "数据处理-会员余额修改"),
    DeviceDateTransfer("DeviceDateTransfer", "数据处理-机器人数据迁移"),
    UserTagsHander("UserTagsHander", "数据处理-修改用户自定义标签"),
    UserDateMerge("UserDateMerge", "数据处理-用户数据合并"),
    CleanOrderStatus("CleanOrderStatus", "数据处理-订单状态清理"),
    KeywordReplace("keywordReplace", "数据处理-回复语关键词替换"),
    FaqReplykeywordReplace("FaqReplykeywordReplace", "数据处理-智能回复回复语关键词替换"),

    //安全设置
    SmsCode("SmsCode", "安全验证"),

    ;

    private String key;
    private String desc;


    SystemModelEnum(String key, String desc) {
        this.key = key;
        this.desc = desc;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public static SystemModelEnum getByKey(String key) {
        if (StringUtils.isBlank(key)) {
            return null;
        }
        for (SystemModelEnum type: SystemModelEnum.values()) {
            if (type.getKey().equals(key)) {
                return type;
            }
        }
        return null;
    }

}
